package com.ruoyi.matchmaker.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 红娘信息对象 tb_matchmaker
 *
 * @author ruoyi
 * @date 2025-07-29
 */
public class TbMatchmaker extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 红娘ID */
    private Long matchmakerId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 身份证号（加密存储） */
    @Excel(name = "身份证号", readConverterExp = "加=密存储")
    private String idCardNo;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;

    /** 红娘等级：1-预备红娘，2-正式红娘，3-金牌红娘 */
    @Excel(name = "红娘等级：1-预备红娘，2-正式红娘，3-金牌红娘")
    private Integer matchmakerLevel;

    /** 服务区域 */
    @Excel(name = "服务区域")
    private String serviceArea;

    /** 从业年限 */
    @Excel(name = "从业年限")
    private Long serviceYears;

    /** 成功牵线次数 */
    @Excel(name = "成功牵线次数")
    private Long successCount;

    /** 个人介绍 */
    @Excel(name = "个人介绍")
    private String introduction;

    /** 资质证书URL */
    @Excel(name = "资质证书URL")
    private String certification;

    /** 红娘状态：0-冻结，1-正常 */
    @Excel(name = "红娘状态：0-冻结，1-正常")
    private Integer matchmakerStatus;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;
    
    @TableField(exist = false)
    private String username;

    public void setMatchmakerId(Long matchmakerId)
    {
        this.matchmakerId = matchmakerId;
    }

    public Long getMatchmakerId()
    {
        return matchmakerId;
    }
    
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    
    public void setRealName(String realName)
    {
        this.realName = realName;
    }

    public String getRealName()
    {
        return realName;
    }
    
    public void setIdCardNo(String idCardNo)
    {
        this.idCardNo = idCardNo;
    }

    public String getIdCardNo()
    {
        return idCardNo;
    }
    
    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }
    
    public void setMatchmakerLevel(Integer matchmakerLevel)
    {
        this.matchmakerLevel = matchmakerLevel;
    }

    public Integer getMatchmakerLevel()
    {
        return matchmakerLevel;
    }
    
    public void setServiceArea(String serviceArea)
    {
        this.serviceArea = serviceArea;
    }

    public String getServiceArea()
    {
        return serviceArea;
    }
    
    public void setServiceYears(Long serviceYears)
    {
        this.serviceYears = serviceYears;
    }

    public Long getServiceYears()
    {
        return serviceYears;
    }
    
    public void setSuccessCount(Long successCount)
    {
        this.successCount = successCount;
    }

    public Long getSuccessCount()
    {
        return successCount;
    }
    
    public void setIntroduction(String introduction)
    {
        this.introduction = introduction;
    }

    public String getIntroduction()
    {
        return introduction;
    }
    
    public void setCertification(String certification)
    {
        this.certification = certification;
    }

    public String getCertification()
    {
        return certification;
    }
    
    public void setMatchmakerStatus(Integer matchmakerStatus)
    {
        this.matchmakerStatus = matchmakerStatus;
    }

    public Integer getMatchmakerStatus()
    {
        return matchmakerStatus;
    }
    
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }
    
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("matchmakerId", getMatchmakerId())
            .append("userId", getUserId())
            .append("realName", getRealName())
            .append("idCardNo", getIdCardNo())
            .append("phone", getPhone())
            .append("matchmakerLevel", getMatchmakerLevel())
            .append("serviceArea", getServiceArea())
            .append("serviceYears", getServiceYears())
            .append("successCount", getSuccessCount())
            .append("introduction", getIntroduction())
            .append("certification", getCertification())
            .append("matchmakerStatus", getMatchmakerStatus())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}